/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名： rumba
 * 文件名： BaseBizException.java
 * 模块说明：    
 * 修改历史：
 * Nov 28, 2007 - lxm - 创建。
 */
package com.hd123.rumba.gwt.base.client.exception;

/**
 * 一般业务异常
 * <p>
 * 
 * 设计用于GWT的客户端。
 * 
 * @author lxm
 * 
 */
public class ClientBizException extends Exception {

  private static final long serialVersionUID = 300100L;

  public ClientBizException() {
    super();
  }

  public ClientBizException(String s) {
    super(s);
  }

  public ClientBizException(Exception e) {
    super(e);
  }

  public ClientBizException(String s, Exception e) {
    super(s, e);
  }

  public static ClientBizException neverCallMe() {
    return new ClientBizException("Never Call Me!");
  }

  public static ClientBizException noPermission() {
    return new ClientBizException("缺少必要的操作权限。");
  }

  public static ClientBizException noPermission(String permCode) {
    return new ClientBizException("缺少必要的操作权限\"" + permCode + "\"。");
  }

  public static ClientBizException rpcTimeout() {
    return rpcTimeout(null);
  }

  public static ClientBizException rpcTimeout(String callName) {
    StringBuffer sb = new StringBuffer();
    sb.append("上一个远程调用");
    if (callName != null) {
      sb.append("(");
      sb.append(callName);
      sb.append(")");
    }
    sb.append("尚未返回。可能是暂时的网络繁忙导致，请稍候重试！");
    return new ClientBizException(sb.toString());
  }
}
